/**
 * Sauvegarde de la configuration : les produits sélectionnés.
 */
function saveMixProduit() {
	
	var checked_ids = "";
	var checked_colors = "";
	// On recupere tous les ID des produits cochés 
    $('#treeProducts').jstree("get_checked", null, true).each(function() {
    	if ($('#' + this.id + '-spectrum').length != 0) {
    		checked_colors += $('#' + this.id + '-spectrum').spectrum("get").toHexString() + ";";
    	}
        checked_ids += this.id + ";";
    });
	
	$.ajax({
		traditional: true, 
		type: 'POST', 
		url: './saveProduits.do',
		target: "_blank", 
		data : {
			checked_ids: checked_ids,
			checked_colors: checked_colors
		},
		error: function () {
			alert('Erreur pendant la sauvegarde de la configuration');
		},
		success: function(result) {
			if (firstCallTreeProducts) {
				firstCallTreeProducts = false;
			} else {
				// CSS
				$("#buttonConfigId").css("display", "none");
				$("#graphDynamic").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
				
				// On recharge le graphe dynamique 
				loadGraphDynamic(globalNivGeog, globalGeog, idGeog);
			}
		}
	 });
	
}

/**
 * Affichage de l'arbre contenant tous les produits.
 * Cet arbre apparait en pop-up depuis le graphe dynamique.
 */
function loadJsTreeProducts() { 
	
	var source = $('#sourceId').get(0).value;
	var periode = $('#periodId').get(0).value;
	var unite = $('#unitId').get(0).value;
	
 	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './produits.do',
 		target: "_blank", 
 		data : {
 			filter: 	"",
 			source: 	source,
 			periode: 	periode,
 			unite:		unite
 		},
 		error: function () {
 			alert('Erreur au chargement du jsTree avec les produits');
 		},
 		success: function(result) { 
 			
 			$("#treeProducts").empty();
 			
			$("#treeProducts").jstree({
   				plugins: ["themes", "json_data", "crrm", "ui", "unique", "types", "search", "checkbox"],
   				checkbox: {
   					two_state : true
   				}, 
				json_data : { 
    				data:  result.datas
		 		} 
			}).bind("change_state.jstree", function (e, data) {
				// Lorsqu'une checkbox est cochée ou décochée, on sauvegarde la configuration 
			    saveMixProduit();
   			}).bind("select_node.jstree", function (e, data) {
   			}).bind("open_node.jstree", function (e, data) {
   			}).bind("close_node.jstree", function (e, data) {
  		  	}).bind("loaded.jstree", function (event, data) {
  		  		// Au chargement de l'arbre, on l'ouvre en entier 
  		  		$('#treeProducts').jstree('check_node', 'li[selected=selected]');
  		  		$(this).jstree("open_all"); 
  		  		// On recupere tous les noeuds
			    $('#treeProducts').find("li > a").each(function() {
			    	$(this).append("<div style='float:right;margin-right:25px;'><input type=\"text\" id='" + $(this).parent().get(0).id + "-spectrum' /> </div>");
			    	$('#' + $(this).parent().get(0).id + "-spectrum").spectrum({
					    color: $(this).parent().attr("color"),
					    change: function(color) {
					    	// Lorsqu'on change une couleur, on sauvegarde la configuration 
						    saveMixProduit();
					    }
					});
			    });
			}); 
 		}
 	}); 
 	
}